#!usr/bin/env python  
# -*- coding:utf-8 -*-
""" 
@author:robot
@file: unique_paths_math.py 
@version:
@time: 2023/12/24

换个思路，一个mxn的网格，若想从左上角到达右上角，那么必然要向右走m-1步，
向下走n-1步，至于每一步是向右还是向下，可以采用数学中的排列组合方法求得。
共有(m-1)(n-1)步，从中任选m-1步向右即可。


"""
import math


def unique_paths(m, n):
    return math.factorial(m + n - 2) / math.factorial(n - 1) / math.factorial(m - 1)


print(unique_paths(7, 3))
